package myky.com.doctorapp.contract;

import java.util.List;

import io.reactivex.Observable;
import myky.com.doctorapp.entity.BannerEntity;
import myky.com.doctorapp.entity.CaseCountsEntity;
import myky.com.doctorapp.entity.NewCaseListEntity;
import myky.com.doctorapp.entity.RecDoctorListEntity;
import myky.com.doctorapp.entity.TagListEntity;
import myky.com.doctorapp.base.BaseEntity;
import myky.com.doctorapp.base.BaseView;

public interface HomeFragmentContract {

    interface Model {
        /**
         * 获取首页Banner图数据
         *
         * @return
         */
        Observable<BaseEntity<BannerEntity.PayLoadBean>> getBanner();

        /**
         * 获取首页健康资讯标题
         *
         * @return
         */
        Observable<BaseEntity<TagListEntity.PayLoadBean>> getTagList(String start,String end);

        /**
         * 获取首页推荐医生
         */
        Observable<BaseEntity<RecDoctorListEntity.DataBean>> getRecDoctorList(String version, String size, String current, String publish);

        /**
         * 获取首页病历统计数
         */
        Observable<BaseEntity<CaseCountsEntity.PayLoadBean>> getCaseCounts();

        /**
         * 获取用户上传病历记录
         */
        Observable<BaseEntity<NewCaseListEntity.PayLoadBean>> getUserCaseList();
    }

    interface View extends BaseView<List<BannerEntity.PayLoadBean.AdvertListBean>> {
        void showBannerList(List<BannerEntity.PayLoadBean.AdvertListBean> data);

        void showTagList(List<TagListEntity.PayLoadBean.TagListBean> taglist);

        void showRecDoctorList(List<RecDoctorListEntity.DataBean.PositionsBean> positionsList);

        void showCaseCounts(CaseCountsEntity.PayLoadBean caseCounts);

        void showUserCaseList(List<NewCaseListEntity.PayLoadBean.UserIllnessesBean> userCaseList);
    }

    interface Presenter {
        void getBanner();

        void getTagList(String start,String end);

        void getRecDoctorList(String version, String size, String current, String publish);

        void getCaseCounts();

        void getUserCaseList();
    }
}
